/**
 * @file doubleLinkList.h
 * @author your name (you@domain.com)
 * @brief 
 * @version 0.1
 * @date 2024-10-25
 * 
 * @copyright Copyright (c) 2024
 * 
 */
#ifndef _DOUBLELINKLIST_H
#define _DOUBLELINKLIST_H

struct doubleLinkListNode
{
	int data;
	struct doubleLinkListNode *next;
	struct doubleLinkListNode *prev;
};
typedef struct doubleLinkListNode doubleLinkListNode_t;

#ifdef __cplusplus
extern "C"{
#endif

extern doubleLinkListNode_t *findLinkListLastNode(doubleLinkListNode_t *head);
extern doubleLinkListNode_t *findLinkListNode(doubleLinkListNode_t *head,int assign);
extern int appendNodeToHeadBehind(doubleLinkListNode_t **head,int data);
extern int appendNodeToHeadBefore(doubleLinkListNode_t **head,int data);
extern int appendNodeToTail(doubleLinkListNode_t **head,int data);
extern int appendNodeToAssign(doubleLinkListNode_t **head,int assign,int data);
extern int removeHeadNode(doubleLinkListNode_t **head);
extern int removeTailNode(doubleLinkListNode_t **head);
extern int removeAssignNode(doubleLinkListNode_t **head,int assign);
extern int modifiedAssignNode(doubleLinkListNode_t *head,int assign,int data);
extern void printLinkListNode(doubleLinkListNode_t *head);

#ifdef __cplusplus
}
#endif

#endif

